//找到两个数组中的公共元素
/*给你两个下标从 0 开始的整数数组 nums1 和 nums2 ，它们分别含有 n 和 m 个元素。请你计算以下两个数值：

answer1：使得 nums1[i] 在 nums2 中出现的下标 i 的数量。
answer2：使得 nums2[i] 在 nums1 中出现的下标 i 的数量。
返回 [answer1, answer2]。
n == nums1.length
m == nums2.length
1 <= n, m <= 100
1 <= nums1[i], nums2[i] <= 100
*/
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* findIntersectionValues(int* nums1, int nums1Size, int* nums2,
                            int nums2Size, int* returnSize) {
    int* answer = (int*)calloc(sizeof(int), 2);
    int hash1[101] = {0};
    int hash2[101] = {0};
    for (int i = 0; i < nums1Size; i++) {
        hash1[nums1[i]]++;
    }
    for (int i = 0; i < nums2Size; i++) {
        hash2[nums2[i]]++;
    }
    for (int i = 0; i < nums1Size; i++) {
        if (hash2[nums1[i]])
            answer[0]++;
    }
    for (int i = 0; i < nums2Size; i++) {
        if (hash1[nums2[i]])
            answer[1]++;
    }
    *returnSize = 2;
    return answer;
}



//取整购买后的账户余额
/*一开始，你的银行账户里有 100 块钱。

给你一个整数purchaseAmount ，它表示你在一次购买中愿意支出的金额。

在一个商店里，你进行一次购买，实际支出的金额会向 最近 的 10 的 倍数 取整。换句话说，你实际会支付一个 非负 金额 roundedAmount ，满足 roundedAmount 是 10 的倍数且 abs(roundedAmount - purchaseAmount) 的值 最小 。

如果存在多于一个最接近的 10 的倍数，较大的倍数 是你的实际支出金额。

请你返回一个整数，表示你在愿意支出金额为 purchaseAmount 块钱的前提下，购买之后剩下的余额。

注意： 0 也是 10 的倍数。
0 <= purchaseAmount <= 100
*/
int accountBalanceAfterPurchase(int purchaseAmount) {
    int roundedAmount = purchaseAmount;
    if (roundedAmount % 10) {
        if (abs(purchaseAmount / 10 * 10 - purchaseAmount) <
            abs((purchaseAmount / 10 + 1) * 10 - purchaseAmount))
            roundedAmount = purchaseAmount / 10 * 10;
        else
            roundedAmount = (purchaseAmount / 10 + 1) * 10;
    }
    return 100 - roundedAmount;
}